Groovy 程序設計 (Programming Groovy 2: Dynamic Productivity for the Java Developer)

Groovy 程序設計 (Programming Groovy 2: Dynamic Productivity for the Java Developer)

作者: Venkat Subramaniam
出版社: 人民郵電
出版在: 2014-11-01
ISBN-13: 9787115370419
ISBN-10: 7115370419
總頁數: 278 頁




內容描述


《Groovy程序設計》是Groovy編程指南,結合諸多實例探索了Groovy語言特性。主要內容包括:Groovy基礎知識介紹、如何將Groovy應用於日常編碼、MOP與元編程、使用元編程等。
 Java開發人員適合學習Groovy,對Groovy已有瞭解的程序員也可在本書中學到一些其他書中無從提及的訣竅和技巧。


目錄大綱


第一部分Groovy起步
 
第1章起步2 
1.1安裝Groovy 2 
1.1.1在Windows系統環境安裝Groovy 2 
1.1.2在類Unix系統環境安裝Groovy 3 
1.2管理多個版本的Groovy 3 
1.3使用groovysh 4 
1.4使用groovyConsole 5 
1.5在命令行中運行Groovy 5 
1.6使用IDE 6 
1.6.1 IntelliJ IDEA 6 
1.6.2 Eclipse Groovy插件6 
1.6.3 TextMate Groovy Bundle 6 
 
第2章面向Java開發者的Groovy 8 
2.1從Java到Groovy 8 
2.1 .1 Hello,Groovy 8 
2.1.2實現循環的方式9 
2.1.3 GDK一瞥11 
2.1.4安全導航操作符13 
2.1.5異常處理13 
2.1.6 Groovy是輕量級的Java 15 
2.2 JavaBean 15 
2.3靈活初始化與具名參數19 
2.4可選形參20 
2.5使用多賦值21 
2.6實現接口22
2.7布爾求值25 
2.8操作符重載27 
2.9對Java 5特性的支持28 
2.9.1自動裝箱29 
2.9.2 for-each 29 
2.9.3 enum 30 
2.9.4變長參數31 
2.9.5註解32 
2.9. 6靜態導入33 
2.9.7泛型33 
2.10使用Groovy代碼生成變換35 
2.10.1使用@Canonical 35 
2.10.2使用@Delegate 35 
2.10.3使用@Immutable 36 
2.10.4使用@Lazy 37 
2.10.5使用@ Newify 38 
2.10.6使用@Singleton 38 
2.11陷阱40 
2.11.1 Groovy的==等價於Java的equals() 40 
2.11.2編譯時類型檢查默認為關閉42 
2.11.3小心新的關鍵字43 
2.11. 4別用這樣的代碼塊43 
2.11.5閉包與匿名內部類的衝突43 
2.11.6分號總是可選的45 
2.11.7創建基本類型數組的不同語法45 
 
第3章動態類型47 
3.1 Java中的類型47 
3.2動態類型48
3.3動態類型不等於弱類型49 
3.4能力式設計50 
3.4.1使用靜態類型50 
3.4.2使用動態類型51 
3.4.3使用動態類型需要自律53 
3.5可選類型54 
3.6多方法55 
3.7動態還是非動態58 
3.8關閉動態類型58 
3.8.1靜態類型檢查59 
3.8.2靜態編譯62 
 
第4章使用閉包64 
4.1閉包的便利性64 
4.1.1傳統方式64 
4.1.2 Groovy方式65 
4.2閉包的應用67 
4.3閉包的使用方式68 
4.4向閉包傳遞參數69 
4.5使用閉包進行資源清理70 
4.6閉包與協程72 
4.7科里化閉包74 
4.8動態閉包75 
4.9閉包委託77 
4.10使用尾遞歸編寫程序80 
4.11使用記憶化改進性能82 
 
第5章使用字符串87 
5.1字面常量與表達式87 
5.2 GString的惰性求值問題90 
5.3多行字符串93 
5.4字符串便捷方法95 
5.5正則表達式96 
 
第6章使用集合類98
6.1使用List 98 
6.2迭代ArrayList 100 
6.2.1使用List的each方法100 
6.2.2使用List的collect方法102 
6.3使用查找方法102 
6.4 List上的其他便捷方法103 
6.5使用Map類106 
6.6在Map上迭代108 
6.6.1 Map的each方法108 
6.6.2 Map的collect方法109 
6.6.3 Map的find和findAll方法109 
6.7 Map上的其他便捷方法110 
 
第二部分使用Groovy 
 
第7章探索GDK 114 
7.1使用Object類的擴展114 
7.1.1使用dump和inspect方法115 
7.1.2使用上下文with()方法115 
7.1.3使用sleep 116 
7.1.4間接訪問屬性118 
7.1.5間接調用方法119 
7.2其他擴展119 
7.2.1數組的擴展120 
7.2.2使用java.lang的擴展120 
7.2.3使用java.io的擴展122 
7.2.4使用java.util的擴展124 
7.3使用擴展模塊定制方法125 
 
第8章處理XML 128
8.1解析XML 128 
8.1.1使用DOMCategory 129 
8.1.2使用XMLParser 131 
8.1.3使用XMLSlurper 131 
8.2創建XML 133 
 
第9章使用數據庫136 
9.1創建數據庫136 
9.2連接到數據庫137 
9.3數據庫的Select操作137 
9.4將數據轉為XML表示139 
9.5使用DataSet 140 
9.6插入與更新140 
9.7訪問Microsoft Excel 141 
 
第10章使用腳本和類143 
10.1 Java和Groovy的混合143 
10.2運行Groovy代碼144 
10.3在Groovy中使用Groovy類145 
10.4利用聯合編譯混合使用Groovy和Java 145 
10.5在Java中創建與傳遞Groovy閉包146 
10.6在Java中調用Groovy動態方法148 
10.7在Groovy中使用Java類150 
10.8從Groovy中使用Groovy腳本151 
10.9從Java中使用Groovy腳本153 
 
第三部分MOP與元編程
 
第11章探索元對象協議158 
11.1 Groovy對象159
11.2查詢方法與屬性162 
11.3動態訪問對象164 
 
第12章使用MOP攔截方法166 
12.1使用GroovyInterceptable攔截方法166 
12.2使用MetaClass攔截方法168 
 
第13章MOP方法注入173 
13.1使用分類註入方法173 
13.2使用ExpandoMetaClass注入方法178 
13.3向具體的實例中註入方法182 
13.4使用Mixin注入方法184 
13.5在類中使用多個Mixin 187 
 
第14章MOP方法合成192 
14.1使用methodMissing合成方法192 
14.2使用ExpandoMetaClass合成方法196 
14.3為具體的實例合成方法199 
 
第15章MOP技術匯總201 
15.1使用Expando創建動態類201 
15.2方法委託:匯總練習203 
15.3 MOP技術回顧207 
15.3.1用於方法攔截的選項207 
15.3.2用於方法注入的選項207 
15.3.3用於方法合成的選項208 
 
第16章應用編譯時元編程209 
16.1在編譯時分析代碼209 
16.1.1理解代碼結構210
16.1.2在代碼結構中導航211 
16.2使用AST變換攔截方法調用214 
16.3使用AST變換注入方法218 
 
第四部分使用元編程
 
第17章Groovy生成器224 
17.1構建XML 224 
17.2構建JSON 227 
17.3構建Swing應用229 
17.4使用元編程定制生成器230 
17.5使用BuilderSupport 233 
17.6使用FactoryBuilderSupport 236 
 
第18章單元測試與模擬240 
18.1本書代碼與自動化單元測試240 
18.2對Java和Groovy代碼執行單元測試241 
18.3測試異常245 
18.4模擬245 
18.5使用覆蓋實現模擬247 
18.6使用分類實現模擬250 
18.7使用ExpandoMetaClass實現模擬251 
18.8使用Expando實現模擬253 
18.9使用Map實現模擬255 
18.10使用Groovy Mock Library實現模擬255 
18.10.1使用StubFor 256 
18.10.2使用MockFor 257 
 
第19章在Groovy中創建DSL 261 
19.1上下文261
19.2流暢262 
19.3 DSL的分類263 
19.4設計內部的DSL 264 
19.5 Groovy與DSL 264 
19.6使用命令鏈接特性改進流暢性265 
19.7閉包與DSL 266 
19.8方法攔截與DSL 267 
19.9括號的限制與變通方案268 
19.10分類與DSL 270 
19.11 ExpandoMetaClass與DSL 271 
 
附錄A Web資源273 
附錄B參考書目277


作者介紹


Venkat Subramaniam 
Agile Developer公司創始人,敏捷開發權威人士。他培訓並指導了美國、加拿大、印度和歐洲多國的上千名軟件開發人員,並多次在各種大會上發表演講。除本書外,還著有Jolt大獎圖書《高效程序員的45個習慣:敏捷開發修煉之道》。
 
臧秀濤
畢業於中國科學院計算技術研究所。曾從事網絡遊戲、操作系統等方面的開發工作。喜愛編程語言和編譯器相關技術。熱愛讀書和翻譯。




相關書籍

Visual Studio Extensibility Development: Extending Visual Studio Ide for Productivity, Quality, Tooling, and Analysis

作者 Verma Rishabh

2014-11-01

More Effective C# 中文版 | 寫出良好 C#程式的 50個具體做法, 2/e (More Effective C# : 50 Specific Ways to Improve Your C#, 2/e)

作者 Bill Wagner 陳開煇 孫天佑

2014-11-01

Tomcat 與 JavaWeb 開發技術詳解, 3/e

作者 孫衛琴

2014-11-01